有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在活动之间传递ArrayList的java机制

首先我想说的是如何在活动之间传递Arraylist。我想知道整个arraylist是使用intent传递的,还是只转移了它的基址。(如C所示) 此外,如果传递了整个arraylist,那么是否有任何机制可以像在c中那样只传递其基,以便多个活动可以使用单个arraylist,而不是同一arraylist的副本。 注意在回答这个问题之前,我要说的是,我已经访问了许多关于stackoverflow的与arraylist相关的问题,但没有人解释过我的问题


共 (2) 个答案

  1. # 1 楼答案

    ArrayList<String> arr = new ArrayList<>();
            arr.add("Hello");
    
            Intent intent = new Intent(MainActivity.this, ToActivity.class);
            intent.putExtra("array_list", arr);
            startActivity(intent);
    

    在ToActivity活动中:

    Bundle bundle = getIntent().getExtras();
             if (bundle != null) {
                ArrayList<String> arr = b.getStringArrayList("array_list");
            }
    
  2. # 2 楼答案

    可以通过意图传递的数据是可序列化的、可打包的或基本类型的。ArrayList已可序列化,因此在跨活动传递时会被序列化。 如果想在不同的活动中使用相同的Arraylist,可以创建singleton,从不同的点访问相同的Arraylist